package com.kstech.mp3604.bean

/**
 * author: blankii
 * created on: 2025/4/14 10:57
 * description:
 */

/**
 * topic:心跳的时候是heartbeat
 * timestamp:时间
 * deviceType:2代表堆码
 */
data class ToPdaData(
    val data: Any, val deviceType: Int, val timestamp: String, val topic: String
)


/**
 * 心跳数据
 * val deviceType: Int,//2025年7月4日10:09:48 没有了
 */
class Data2(
    val deviceIp: String,//设备IP
    val location: Int,//用于记录整机零位位置(避免标定错误）
    val posX: Int,//当前X mm
    val posY: Int,//当前y mm
    val posZ: Int,//当前z mm
    val weight: Int,//重量1g  串口1kg  显示0.1kg
    val deviceStatus: Int,//用于显示当前整机工作状态：（1：待机状态，2：空载状态；3：带载状态，4：故障状态，5堆码完成状态、6起吊完成状态)
    val errorCode: Int,//非必传 用于显示当前设备故障信息（3604厂提供故障代码和故障描述映射关系表）（客户端暂时不传，可保留功能）
    val errorCount: Int//非必传 异常总数（客户端暂时不传，可保留功能）
)

/**
 * 接收反馈数据 收到任务单之后反馈
 * transferOrderNo 调拨单号
 * status 成功接受(1),接收失败(2)
 * taskId 任务ID(服务端发送的一致)
 */
data class Data3(
    val transferOrderNo: String, val status: Int, val taskId: String
)

/**
 * 结果反馈 任务反馈
 * 起吊后发送一次，落位后发送一次
 * 无任务结果复用该接口，其中topic为task/end/notask
 */
data class Data4(
    val taskId: String,//子任务ID 无任务时：为0
    val location: Int,//用于记录整机零位位置(避免标定错误）
    val state: Int,//5堆码完成/6起吊完成
    val weight: Double,//当前堆码重量（KG）,待稳定时发送总重量，否则为0
    val posX: Int,//mm 当前位置x（质心不确认）（state为5或者6时的稳定x坐标）
    val posY: Int,//mm 当前位置y（state为5或者6时的稳定y坐标）
    val posZ: Int,//mm 当前位置z（state为5或者6时的稳定时箱体上表面的z坐标）
    val liftingSpeed: Double,//升降阶段最大速度
    val rotationSpeed: Double,//回转速度最大速度
    val horizontalSpeed: Double,//横移速度
    val approachSpeed: Double,//接近速度
    val time: String,//时间戳
    val operateType: String,//无任务，为空
    val transferOrderNo: String,//调拨单号 无任务时：为0
    val deviceIp: String,//设备IP   暂留
    val warehouseId: String//仓库号  新增
)

/**
 * 异常数据 反馈  2025年7月4日10:04:31 昆明要求暂时不要
 */
data class Data5(
    val count: Int,
    val num: Int,
    val name: String,
    val value: String,
    val remark: String,
    val status: Int
)


data class Data6(val warehouseId: String)



